import request from './axios'

/**
 * 获取商品列表（分页）
 * @param {Object} params 查询参数
 * @param {number} [params.page=1] 页码
 * @param {number} [params.limit=10] 每页数量
 * @param {string} [params.category] 商品类别（如"食品"）
 * @param {string} [params.type] 商品类型（"菜品"/"商品"）
 * @returns {Promise<Object>} 包含total/page/limit/list的分页数据
 */
export const apiGetProductList = (params) => {
  return request.get('/api/products', { params })
}

/**
 * 获取商品详情
 * @param {string} productId MongoDB商品ID
 * @returns {Promise<Object>} 商品详细信息对象
 */
export const apiGetProductDetail = (productId) => {
  return request.get(`/api/products/${productId}`)
}

/**
 * 添加商品（管理员）
 * @param {Object} params 商品信息
 * @param {string} params.name 商品名
 * @param {string} params.category 类别（如"食品"）
 * @param {number} params.points 兑换积分
 * @param {number} params.stock 库存
 * @param {string} params.image 图片URL
 * @param {string} params.type 类型（"菜品"/"商品"）
 * @param {string} [params.description] 商品详情（可选）
 * @param {string} [params.deliveryRules] 配送规则（可选）
 * @returns {Promise<Object>} 新增的商品对象
 */
export const apiAddProduct = (params) => {
  return request.post('/api/products', params)
}

/**
 * 修改商品（管理员）
 * @param {string} productId MongoDB商品ID
 * @param {Object} params 商品更新信息（同添加接口参数）
 * @returns {Promise<Object>} 更新后的商品对象
 */
export const apiUpdateProduct = (productId, params) => {
  return request.put(`/api/products/${productId}`, params)
}

/**
 * 删除商品（管理员）
 * @param {string} productId MongoDB商品ID
 * @returns {Promise<void>} 删除成功无返回数据
 */
export const apiDeleteProduct = (productId) => {
  return request.delete(`/api/products/${productId}`)
}